package thread;

/**
 * Creared with IntelliJ IDEA.
 * Description:
 * User:yxd
 * Date:2022-03-20
 * Time:23:22
 */
public class Demo7 {
    public static void main(String[] args) {
        Thread t = new Thread(()->{//推荐使用这个 Thread.currentThread().isInterrupted()这个方法是判定Thread的普通成员,每个实例都有自己的标志位
           while(!Thread.currentThread().isInterrupted()){//Thread内部包含了一个boolean的变量可以用来作为标记位 标记是否被中断 或者使用这个Thread.currentThread().isInterrupted()也是可以来标记的
               System.out.println("hello thread");
               try {
                   Thread.sleep(1000);
               } catch (InterruptedException e) {
                   e.printStackTrace();
                   break;//注意这里的break 没有这个的话进入异常之后还会继续打印的
               }
           }
        });
        t.start();
        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        t.interrupt();//使用thread的对象的interrupt()方法来通知线程结束(在有sleep的情况下这个方法会让sleep触发异常从而导致线程从阻塞状态被唤醒)
    }
}
